package com.ruoyi.pingjiao.mapper;

import com.ruoyi.pingjiao.domain.CourseRequirement;
import com.ruoyi.pingjiao.domain.GraduationRequirement;

import java.util.List;

/**
 * 课程毕业要求Mapper接口
 * 
 * @author zhangpeng
 * @date 2025-02-07
 */
public interface GraduationRequirementMapper 
{
    /**
     * 查询课程毕业要求
     * 
     * @param requirementId 课程毕业要求主键
     * @return 课程毕业要求
     */
    public GraduationRequirement selectGraduationRequirementByRequirementId(Long requirementId);

    /**
     * 查询课程毕业要求列表
     * 
     * @param graduationRequirement 课程毕业要求
     * @return 课程毕业要求集合
     */
    public List<GraduationRequirement> selectGraduationRequirementList(GraduationRequirement graduationRequirement);

    /**
     * 新增课程毕业要求
     * 
     * @param graduationRequirement 课程毕业要求
     * @return 结果
     */
    public int insertGraduationRequirement(GraduationRequirement graduationRequirement);

    /**
     * 修改课程毕业要求
     * 
     * @param graduationRequirement 课程毕业要求
     * @return 结果
     */
    public int updateGraduationRequirement(GraduationRequirement graduationRequirement);

    /**
     * 删除课程毕业要求
     * 
     * @param requirementId 课程毕业要求主键
     * @return 结果
     */
    public int deleteGraduationRequirementByRequirementId(Long requirementId);

    /**
     * 批量删除课程毕业要求
     * 
     * @param requirementIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGraduationRequirementByRequirementIds(Long[] requirementIds);

    /**
     * 批量删除课程毕业要求
     * 
     * @param requirementIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCourseRequirementByRequirementIds(Long[] requirementIds);
    
    /**
     * 批量新增课程毕业要求
     * 
     * @param courseRequirementList 课程毕业要求列表
     * @return 结果
     */
    public int batchCourseRequirement(List<CourseRequirement> courseRequirementList);
    

    /**
     * 通过课程毕业要求主键删除课程毕业要求信息
     * 
     * @param requirementId 课程毕业要求ID
     * @return 结果
     */
    public int deleteCourseRequirementByRequirementId(Long requirementId);
}
